
apiVersion: networking.k8s.io/v1  
kind: NetworkPolicy               
metadata:
  name: allow-specific-traffic    # 給這個 NetworkPolicy 取一個名
  namespace: dev                  # 指定這個 NetworkPolicyNamespace
spec:
  podSelector:                    # 定義此 NetworkPolicy 針對的 Pod 範圍
    matchLabels:
      role: backend               # 只針對標籤為 "role=backend" 的 Pod 應用此策略
  policyTypes:
  - Ingress                       # 指定該 NetworkPolicy 的類型為 Ingress,表示控制進入這些 Pod 的流量
  ingress:
  - from:                         # 定義允許哪些流量進入這些 Pod
    - podSelector:                # 允許來自特定 Pod 的流量
        matchLabels:
          role: frontend          # 允許來自標籤為 "role=frontend" 的 Pod 的流量
    ports:                        # 指定允許進入的端口
    - protocol: TCP               # 指定允許的協議為 TCP
      port: 8080                  # 指定允許的端口號為 8080

https://kubernetes.io/docs/concepts/services-networking/network-policies/
https://godleon.github.io/blog/Kubernetes/k8s-Network-Policy-Overview/
https://earthly.dev/blog/kubernetes-network-policies/